﻿package mclight;
import flash.display.DisplayObjectContainer;
import mclight.containers.Container;

class ValueComponent extends Component
{
	public function new(?parent:DisplayObjectContainer, ?container:Container, xpos:Float = 0, ypos:Float = 0) 
	{
		_value = 0;
		_minValue = 0;
		_maxValue = 100;
		super(parent, container, xpos, ypos);
	}
	
	function updateValueView()
	{
		
	}
	
	function correctValue()
	{
		if(_maxValue > _minValue)
		{
			if (_value > _maxValue)
			{
				_value = _maxValue;
			}
			else if (_value < _minValue)
			{
				_value = _minValue;
			}
		}
		else
		{
			if (_value  < _maxValue)
			{
				_value = _maxValue;
			}
			else if (_value > _minValue)
			{
				_value = _minValue;
			}
		}
	}
	
	// PUBLIC METHODS
	
	// HANDLERS
	
	// PROPERTIES
	
	public var maxValue(getMaxValue, setMaxValue):Float;
	var _maxValue:Float;
	function setMaxValue(maxValue:Float)
	{
		_maxValue = maxValue;
		correctValue();
		updateValueView();
		return maxValue;
	}
	function getMaxValue()
	{
		return _maxValue;
	}
	
	public var minValue(getMinValue, setMinValue):Float;
	var _minValue:Float;
	function setMinValue(minValue:Float)
	{
		_minValue = minValue;
		correctValue();
		updateValueView();
		return minValue;
	}
	function getMinValue()
	{
		return _minValue;
	}
	
	public var value(getValue, setValue):Float;
	var _value:Float;
	function setValue(value:Float):Float
	{
		_value = value;
		correctValue();
		updateValueView();
		return _value;
	}
	function getValue():Float
	{
		return _value;
	}
}